home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / wildcat / dpmsg261.zip / DUPMSG.DOC next >
Text File  |  1993-04-28  |  23KB  |  565 lines

  1. ┌──────────────────────────────────────────┐
  2. │ DupMsg.exe     v2.61           04-26-93  │
  3. └──────────────────────────────────────────┘
  4.  
  5. What it Does
  6. ------------
  7.  
  8. DupMsg finds and deletes duplicate messages from Wildcat 3+ 
  9. message databases.  Duplicates will be identified even if the
  10. tagline, date or subject line has been changed.  In addition,
  11. DupMsg will delete old messages by date, purge messages over the
  12. MakeWild limit, and delete messages from specific users as desired.
  13.  
  14. Deleted messages can be completely purged from the database or
  15. internally marked as "deleted" for later review.  Marked messages
  16. can be purged on a subsequent DupMsg run.
  17.  
  18. Since some BBS utilities modify the subject line and the message's
  19. date and time, DupMsg can be configured to ignore both subject and
  20. date/time when identifying duplicates.  PC Relay users should
  21. select the "ignore date/time" option as the PC Relay program does
  22. change the message's date.
  23.  
  24.  
  25. How it Works
  26. ------------
  27.  
  28. Upon opening a database, DupMsg first purges messages that were
  29. marked for later deletion.  It uses the marked-for-deletion key
  30. from the index key file (MSGxxx.IX) to identify these messages.
  31.  
  32. The database is then searched for messages from users listed in the
  33. DUPMSG.LST file.  This process uses a key search so it is quite
  34. fast, unless there are many names in the DUPMSG.LST file.
  35.  
  36. Next, messages from one person at a time are read and each
  37. message's date is checked to see if it is too old.  Old messages
  38. are deleted on this first scan through the database.  Suspected
  39. duplicates are then compared text vs. text and duplicates are
  40. deleted.  If a duplicate pair is found, the message with the higher
  41. message number is deleted.
  42.  
  43. Finally, if the number of messages still exceeds the limit set in
  44. MakeWild, the excess messages will be purged from the database
  45. starting with the lowest message number.  This process is automatic
  46. and is useful when you reduce the number of messages allowed per
  47. conference or use WildMail's no-purge option.  If the MakeWild
  48. limit is set to zero (0), then this option is disabled for DupMsg
  49. and all other message import utilities.
  50.  
  51. The standard tagline format has a space as the first character in
  52. the line, then either an asterisk or square box as the second
  53. character.  DupMsg recognizes the standard formats as well as non-
  54. standard taglines from the following programs:
  55.      PC Relay 4.1x
  56.      SF UTI   3.16
  57.      RBBS-UTI 2.0
  58.  
  59. DupMsg will also handle FidoNet ^@ control lines and word wrapping. 
  60. While the DupMsg author will try to keep up with different non-
  61. standard taglines, the standard format should be used in programs
  62. whenever possible.  Standard formats will allow all programs to
  63. work more efficiently.
  64.  
  65.  
  66. Other Information
  67. -----------------
  68.  
  69. If DupMsg deletes a message with an attached file, the attached
  70. file will be deleted as well.  Text files that are imported using
  71. the <<*.IMP method will not be deleted.
  72.  
  73. Pressing CTRL-C will signal DupMsg to stop processing at the next
  74. safe opportunity, save and close the database, and update the
  75. current message counter.
  76.  
  77. If running DupMsg remotely using the Doorway program, using the
  78. /V:D option to handle direct screen writing.
  79.  
  80. Messages that are marked with the "No Delete" flag will not be
  81. deleted.
  82.  
  83. DupMsg treats slow message conferences a little differently.  If
  84. there are fewer than 10 messages in a conference, they will not be
  85. deleted because of their age;  Duplicates, marked and blocked
  86. messages will still be deleted.  In the future, this option will be
  87. configurable.
  88.  
  89.  
  90. Setup
  91. -----
  92.  
  93. DupMsg can be run from any directory and looks for its
  94. configuration file and the required WildCat files in the path.  As
  95. long as the main WildCat directory is in the path, you should have
  96. no problems with DupMsg.
  97.  
  98. DupMsg uses the following files:
  99.  
  100.      MAKEWILD.DAT        Found using the WCHOME variable, in the
  101.                          current directory, or in the path.
  102.      CONFDESC.DAT        In the same directory as MAKEWILD.DAT.
  103.      NODEINFO.DAT        Path is defined in Makewild.
  104.  
  105.      DUPMSG.CFG          Either found in the current directory or
  106.                          path or will be created by DupMsg's Setup
  107.                          section.
  108.  
  109.      DUPMSG.LST          Found in the current directory or in the
  110.                          path.
  111.  
  112.      DUPMSG.LOG          If found in the current directory or path,
  113.                          all log entries will be added to the
  114.                          current file.  If not found, then a new
  115.                          log file will be created in the current
  116.                          directory.
  117.  
  118.      All the messages conferences are defined using Makewild and
  119.      the descriptions are stored in Confdesc.dat.
  120.  
  121. The first time DupMsg is used, it will run the configuration module
  122. and create a config file.  The config file allows you to customize
  123. the DupMsg program to meet your needs.  The config file options
  124. are:
  125.  
  126.  
  127.                          Master Settings
  128.  
  129.  
  130. 1)  Log Options
  131.  
  132.      No Log:   No information is written to the log or echoed to
  133.                the screen.  If all three fields are set to "No
  134.                Log", then no log file will be created.
  135.  
  136.      Brief:    Displays and logs the message number being deleted
  137.                and the reason for deletion.
  138.  
  139.      Complete: Displays the above information and a second line
  140.                showing the message FROM-name, TO-name, and
  141.                Subject.  For duplicate messages, the message's
  142.                source (uploader) will be noted, if it can be
  143.                determined.
  144.  
  145. 2)  Delete Options
  146.  
  147.      Delete:   Completely delete messages from the database and
  148.                free up the space for new messages.  The drawback
  149.                is that deleted messages cannot be recovered; once
  150.                deleted they are gone forever.
  151.  
  152.      Mark:     Messages are not removed from the database and
  153.                still occupy space on the disk.  Marked messages
  154.                can be reviewed by the Sysop, undeleted, or
  155.                completely deleted at a later time.
  156.  
  157.      * OFF *:  Turns this function off for all conferences.
  158.  
  159. 3)  Duplicate Options
  160.  
  161.      Ignore Date:  Some mail doors replace the date and time of a
  162.                message with the date and time that the message was
  163.                uploaded.  The same message uploaded twice may
  164.                cause a pair of duplicates to have different dates. 
  165.                If YES, duplicate messages with different dates
  166.                and/or times will be deleted.  If NO, they will be
  167.                considered different messages.
  168.  
  169.      Ignore Subject:  If YES, duplicate message with different
  170.                subjects will be deleted.  This can be useful to
  171.                catch duplicate BBS and For Sale advertising.  If
  172.                NO, they will be considered different messages.
  173.  
  174.                Some BBS utilities change a mixed case subject line
  175.                to all upper case.  Because of this, upper and
  176.                lower case differences are always ignored.
  177.  
  178.  
  179.                     Conference Configuration
  180.  
  181. 1)   Purge marked messages:  All messages marked as deleted will be 
  182.      purged from the database.  This option is performed before any 
  183.      duplicate or old messages are marked, so only messages marked
  184.      directly from the WildCat message menu or on prior DupMsg runs
  185.      will be purged from the database.
  186.  
  187. 2)   Delete blocked messages:  This refers to messages from users
  188.      who are listed in the DUPMSG.LST file as being blocked from
  189.      your BBS.  All messages FROM users in your DUPMSG.LST file
  190.      will be deleted.
  191.  
  192. 3)   Delete duplicate messages:  The most important switch in the
  193.      program, this turns duplicate message checking on or off for
  194.      each conference.  Exact duplicates and messages with extra &
  195.      different taglines will be found and the newer message (the
  196.      one with the higher message number) will be deleted.
  197.  
  198. 4)   Delete old messages:  Messages older than the number of days 
  199.      specified will be deleted.  Old messages are determined based
  200.      on the date & time of the messages, not on when the messages
  201.      were introduced to the BBS.  If a messages has the "No Delete"
  202.      flag set (see WildCat docs) then that message will not be
  203.      deleted.
  204.  
  205. 5)   Number of days:  If "Delete Old Messages" is set to "YES", 
  206.      this is the number of days that a message will be kept in the
  207.      database.  The default is 30 days, so messages over 30 days
  208.      old will be deleted, even if they have just been uploaded to
  209.      the BBS.  If this field is set to zero, then all messages will
  210.      be deleted, except those with today's date.
  211.  
  212. 6)   High message number:  Each time the program is run, DupMsg
  213.      stores each conference's high message number in this field. 
  214.      If the current high message number is the same as the number
  215.      stored in the config file, then no duplicate checking is
  216.      performed.  If the current number is larger, then only the new
  217.      messages will be checked as possible duplicates.  If the
  218.      current number is smaller than the config file number, then
  219.      DupMsg will assume that the database has been renumbered and
  220.      will check every message.
  221.  
  222.  
  223. Blocked Messages  (DUPMSG.LST)
  224. ------------------------------
  225. You now have the option of deleting all messages from a given user
  226. name.  When configured to delete blocked messages, DupMsg will read
  227. each line from DUPMSG.LST and search for all messages FROM that
  228. user name.  If found, the message(s) will be marked or deleted as
  229. configured.
  230.  
  231. This is useful for problem users on the network that you cannot
  232. lock out any other way, but it should be used sparingly.  Examples
  233. of proper use are:
  234.  
  235.      --   A user consistently uses foul language, and the source
  236.           BBS is not taking care of it.
  237.      --   A chain letter, advertisement, etc. was left in every
  238.           single message conference.
  239.  
  240. There is a danger that this option may be used for censorship, or
  241. that innocent users may be locked out unnecessarily.  Sysops should
  242. take care to use it only when necessary.
  243.  
  244. The DUPMSG.LST file is a standard text file that contains one line
  245. per user name.  Case is ignored when processing the file.
  246.  
  247.  
  248. Memory Requirements
  249. -------------------
  250.  
  251. DupMsg requires a minimum of 198K to run, but will use up to 255K
  252. if available.  Using maximum memory, DupMsg is able to compare up
  253. to 2000 messages at a time.  Since many BBSs have conferences with
  254. more than 2000 messages, DupMsg selects and processes messages from
  255. only one person at a time.
  256.  
  257. If there are more than 2000 messages from any one user, or if the
  258. program runs out of memory, DupMsg will process the first 2000
  259. messages or as many as it can hold in memory, then go back and
  260. continue duplicate checking from where it left off.  Duplicate
  261. messages will only be missed if one copy is in the first 2000 and
  262. the other copy is in subsequent batches.
  263.  
  264. Remember, the limitation is 2000 messages from a single user, not
  265. 2000 total messages.  DupMsg only checks for duplicates in one
  266. conference at a time.
  267.  
  268.  
  269. Multi-Node BBSs
  270. ---------------
  271. If you are running a single-line version of WildCat, DupMsg cannot
  272. be run while the BBS is up, or when any other utility is accessing
  273. the message databases.
  274.  
  275. In order to run DupMsg while the BBS is online, you must be running
  276. a multi-line WildCat version and have either DOS share or Novell
  277. defined in the Makewild program.  In addition, if the autonode
  278. option is not selected in MAKEWILD, the environment variable
  279. WCNODEID must be set to a valid number between 1 and 250.
  280.  
  281. Use the following command:
  282.  
  283.      SET WCNODEID=3
  284.  
  285. using 3 or whichever node ID you wish to use.  This node ID must
  286. not be duplicated.  No other BBS node or program using this node ID
  287. may be running while DupMsg is accessing the message databases.
  288.  
  289.  
  290. WCHOME Environment Variable
  291. ---------------------------
  292.  
  293. Although not required, you may specify your main WildCat directory
  294. using the WCHOME environment variable.  While this will not save
  295. any noticeable time, it may serve to avoid confusion especially if
  296. you have more than one copy of MAKEWILD.DAT or CONFDESC.DAT on your
  297. disk.  The following is an example:
  298.  
  299.      SET WCHOME=C:\WC30
  300.  
  301.  
  302. Log File
  303. --------
  304.  
  305. DupMsg writes to a log file which records information as specified
  306. in the config file.  The default log file is DUPMSG.LOG, but like
  307. the default config file it can be changed by entering a number on
  308. the command line.  The section on command line options covers this
  309. option in more detail.
  310.  
  311. If the log file is not found in the current directory or in the
  312. path, a new log file will be created in the current directory.  If
  313. a log file is found, DupMsg will add log information to the end of
  314. it.
  315.  
  316.  
  317. Command Line Options
  318. --------------------
  319.  
  320. There are five optional command line parameters.  These are:
  321.  
  322. SETUP:    Runs the setup program to create and/or modify a config
  323.           file.
  324.  
  325. RESET:    Resets the config file high message numbers to zero.
  326.  
  327. HIGH:     Sets the config file high message numbers to match the
  328.           database high message number.  This is useful after a
  329.           database renumber.
  330.  
  331. HELP:     Display the DupMsg help screen.
  332. 1-99:     An optional number specifies which configuration and log
  333.           files to use.  If a number is specified, the default
  334.           config file  "DUPMSG.CFG" is not used.  Instead, a config
  335.           file numbered DUPMSG1.CFG to DUPMSG99.CFG will be used.
  336.           For example:
  337.  
  338.           DUPMSG 15
  339.  
  340.           will tell DupMsg to use config file 'DUPMSG15.CFG' and
  341.           log file 'DUPMSG15.LOG'.
  342.  
  343. If no command line parameters are used, DupMsg will use the values
  344. in DUPMSG.CFG to run the DupMsg program and log information to
  345. DUPMSG.LOG.
  346.  
  347.  
  348. DOS Errorlevel
  349. --------------
  350.  
  351. DupMsg returns one of three DOS errorlevels at the end of the
  352. program.  These errorlevels can be tested in a batch file to
  353. perform special functions (like deleting the log file) if desired.
  354.  
  355. Errorlevel 2:  DupMsg ended abnormally.  A required file may be
  356.                missing, there may be memory problems, or perhaps
  357.                there was a database error.  See the log file for
  358.                more details.
  359.  
  360. Errorlevel 1:  DupMsg successfully deleted some duplicate
  361.                messages.  If you are interested in which
  362.                duplicates were found, you can use the batch file
  363.                to save the log for later reading.
  364.  
  365. Errorlevel 0:  DupMsg ended successfully but did not find any
  366.                duplicates, though some old or marked messages may
  367.                have been deleted.
  368.  
  369. Batch files can be setup to test for errorlevels as follows:
  370.  
  371.      If Errorlevel = 2  .......
  372.      If Errorlevel = 1  .......
  373.      If Errorlevel = 0  .......
  374.  
  375. If the errorlevel test is true, whatever follows it will be treated
  376. like a regular DOS command.  There are some exceptions, so refer to
  377. a good DOS reference for assistance.
  378.  
  379. Remember that if errorlevel 2 is true, both of the following lines
  380. (errorlevel 1 & 0) will also be true.  Batch files can be
  381. programmed to skip lines by using GOTO statements, such as:
  382.  
  383.      If Errorlevel = 2 goto ERROR
  384.      If Errorlevel = 1 goto SAVE
  385.      If Errorlevel = 0 goto DELETE
  386.      :ERROR
  387.           {Perform error processing}
  388.      Goto END
  389.  
  390.      :SAVE
  391.           {Save the log file for later reading}
  392.      Goto END
  393.  
  394.      :DELETE
  395.           {Delete the log file}
  396.  
  397.      :END
  398.  
  399.  
  400. Registration & Support
  401. ----------------------
  402.  
  403. DupMsg is distributed as shareware.  Shareware software allows you
  404. to try before you buy, thus you never need to pay for a shareware
  405. program that does not meet your needs.
  406.  
  407. You may use DupMsg for 30 days at no charge, allowing you a chance
  408. to see if DupMsg meets your needs.  If you keep using DupMsg after
  409. 30 days, you must register the software by sending in the
  410. registration form and paying the registration fee of $25 (US). 
  411. Should you forget to register, DupMsg will start to display a
  412. reminder on the screen and wait a few seconds before continuing.
  413.  
  414. Registration entitles the purchaser to use DupMsg on one BBS
  415. system.  A BBS system is defined as either a single computer
  416. system, or a network system where multiple computers are connected
  417. by direct cable to the same network server.
  418.  
  419. Even after you register DupMsg, your satisfaction is guaranteed. 
  420. If within 30 days after registering DupMsg, you decide that you no
  421. longer wish to use the program, simply write a letter to the author
  422. requesting a refund and your registration fee will be refunded. 
  423. Only the registration fee will be refunded, not the cost of
  424. diskettes that may have been ordered.
  425.  
  426. The author can be reached via the WildNet, FidoNet, and MSInet mail
  427. networks;  Address messages to Jim Metzler.
  428.  
  429. Registration fees and requests for additional information should be
  430. addressed to:
  431.  
  432. Jim Metzler
  433. WPI Box 188
  434. 100 Institute Rd.
  435. Worcester, MA 01609
  436.  
  437. Voice: (508) 799-7540
  438. BBS:   (508) 754-6512
  439.  
  440.  
  441. Distribution 
  442. ------------
  443. Several WildNet Sysops have agreed to post DupMsg in its original
  444. ARJ archive with Security Envelope.  Thanks go to these Sysops and
  445. the many others who have supported DupMsg.
  446.  
  447. The original archive may be downloaded from the following BBSs:
  448.  
  449. Miwok Village        --  Worcester, MA         --  (508) 754-6512
  450. MSI HQ BBS           --  Bakersfield, CA       --  (805) 395-0250
  451.  
  452. B-Line BBS           --  Bakersfield, CA       --  (805) 634-0701
  453. Bun's BBS            --  San Francisco, CA     --  (415) 756-5098
  454. Lost BBS             --  Overland Park, KS     --  (913) 642-0349
  455. NoHo BBS             --  Hesperia, CA          --  (619) 949-4025
  456. Programmer's Forum   --  Statesville, NC       --  (704) 873-4282
  457.  
  458. Data Base Forum      --  Oslo, Norway          --  +47-2-295626
  459. Gil's PC             --  Chapeau, Quebec       --  (819) 689-5465
  460.  
  461.  
  462. DupMsg, Censor and the Enhanced UTIs can be F'Reqed from:
  463.  
  464.     Programmer's Forum  --  HST Dual v.32bis   --  (1:379/1102)
  465.     Lost BBS            --  Compucom, V.32     --  (1:280/319)
  466.     B-Line BBS          --  HST Dual v.32bis   --  (1:210/46)
  467.  
  468. The request names are DUPMSG, CENSOR and UTI.
  469.  
  470.  
  471. You are authorized to distribute DupMsg provided the executable
  472. program, documentation, and registration form are included in their
  473. original, unmodified state.  No fee may be charged for the
  474. distribution of DupMsg without the express written permission of
  475. the author.
  476.  
  477. Please do not compress the executable program; testing has shown
  478. that DupMsg takes approximately 10% longer to perform a given task
  479. when compressed versus its original, un-compressed state.
  480.  
  481.  
  482. Warranty Disclosure
  483. -------------------
  484.  
  485. Normally, software distributed through bulletin boards systems or
  486. shared from one user to another does not carry a warranty, mainly
  487. because the author does not have control over the product and the
  488. program can be modified either intentionally or accidentally
  489. without the author's knowledge.
  490.  
  491. Recognizing this, DupMsg carries either no warranty or a limited
  492. warranty depending on the distribution method.
  493.  
  494. LIMITED WARRANTY:
  495.  
  496.      This applies only when the program is received directly from
  497.      the author on diskette, or when it is received in the original
  498.      ARJ archive, complete with a valid Security Envelope.  The ARJ
  499.      Security Envelope must read "ARJ archive created by James W.
  500.      Metzler R#0301".  The user must keep the diskette or original
  501.      ARJ archive as proof of this warranty.
  502.  
  503.      What is covered:  The DupMsg program will perform
  504.      substantially as described in this document.  In addition,
  505.      while the program may contain minor bugs or errors, it is
  506.      warranted to be free of major defects for a period of six
  507.      months.
  508.  
  509.      What is not covered:  The author will not be liable for
  510.      incidental and/or consequential damages, including injury to
  511.      property, interruption of service, loss of business and/or
  512.      anticipated profits, or other consequential damages that may
  513.      result from use, malfunction or failure of the DupMsg program,
  514.      or from errors or omissions in the documentation.  Some states
  515.      do not allow the exclusion or limitation of incidental or
  516.      consequential damages, so the above limitation may not apply
  517.      to you.
  518.  
  519.      Any attempt to modify the DupMsg program will void this
  520.      warranty in its entirety.
  521.  
  522.      If there is a problem:  Within 60 days of notification that a
  523.      major defect exists, the author, at his discretion, will
  524.      either fix the program and forward the replacement at no cost
  525.      to the registered user, or will refund the registration fee.
  526.  
  527.      How to get service:  Send a written letter to the author
  528.      detailing the type of problem and symptoms experienced. 
  529.      Include your name, address, voice phone number and
  530.      registration number and any additional information that you
  531.      believe may be useful, such as any TSRs and disk cache
  532.      programs in use.
  533.  
  534.      The author may contact you by voice or written letter for more
  535.      information to help in tracking down the problem.
  536.  
  537.  
  538. NO WARRANTY:
  539.  
  540.      If you did not receive the DupMsg program directly from the
  541.      author, or in its original ARJ archive with a genuine Security
  542.      Envelope (see above), then there is a possibility that the
  543.      program and/or documentation has been modified, or that the
  544.      program is not the author's work.  The author makes no
  545.      warranty of any kind, express or implied, including any
  546.      warranties of fitness and/or merchantability if the program
  547.      was received from other sources.
  548.  
  549.      The author will not be liable for any damages, whether direct,
  550.      indirect, special or consequential arising from a failure of
  551.      this program to operate in the manner desired by the user. 
  552.      The author will not be liable for any damage to data or
  553.      property which may be caused directly or indirectly by use of
  554.      the program.
  555.  
  556. When trying new software, always backup any and all important files
  557. on your system.
  558.  
  559.  
  560. Copyright
  561. ---------
  562.  
  563. This program is:
  564. Copyright (c) 1991, 1993 James W. Metzler, All Rights Reserved.
  565.